package interfaz;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Vector;

import bean.*;
public interface InterfazAlumnos extends Remote{
	
	// ABM 
	// Materias

	public MateriaVO buscarMateria (MateriaVO mVO)throws RemoteException;
	public boolean existeMateria (MateriaVO mVO)throws RemoteException;
    public void actualizarMateria (MateriaVO mVO)throws RemoteException;
    public void guardarMateria (MateriaVO mVO)throws RemoteException;
    public void eliminarMateria (MateriaVO mVO)throws RemoteException;
    public Vector <MateriaVO> obtenerMaterias()throws RemoteException;
    
    //Alumnos
    
    public AlumnoVO buscarAlumno (AlumnoVO aVO)throws RemoteException;
	public boolean existeAlumno (AlumnoVO aVO)throws RemoteException;
    public void actualizarAlumno (AlumnoVO aVO)throws RemoteException;
    public void guardarAlumno (AlumnoVO aVO)throws RemoteException;
    public void eliminarAlumno (AlumnoVO aVO)throws RemoteException;
    public Vector <AlumnoVO> obtenerAlumnos()throws RemoteException;
    
    //Profesores
    
    public ProfesorVO buscarProfesor (ProfesorVO pVO)throws RemoteException;
	public boolean existeProfesor (ProfesorVO pVO)throws RemoteException;
    public void actualizarProfesor (ProfesorVO pVO)throws RemoteException;
    public void guardarProfesor (ProfesorVO pVO)throws RemoteException;
    public void eliminarProfesor (ProfesorVO pVO)throws RemoteException;
    public Vector <ProfesorVO> obtenerProfesores()throws RemoteException;
  
    
    //Cursos
    
    public CursoVO buscarCurso (CursoVO cVO)throws RemoteException;
    public boolean existeCurso(MateriaVO mVO, ProfesorVO pVO)throws RemoteException;
    public void actualizarCurso(CursoVO cVO)throws RemoteException;
    public void guardarCurso(CursoVO cVO)throws RemoteException;
    public void eliminarCurso(CursoVO cVO)throws RemoteException;
    public Vector <CursoVO> obtenerCursos()throws RemoteException;
    
    //Asignaciones
    
    public void asignarMateriaProfesor(MateriaVO mVO, ProfesorVO pVO)throws RemoteException;
    public void quitarMateriaProfesor(MateriaVO mVO, ProfesorVO pVO)throws RemoteException;
    public void asignarAlumnoCurso(CursoVO cVO, AlumnoVO aVO)throws RemoteException;
    public void quitarAlumnoCurso(CursoVO cVO, AlumnoVO aVO)throws RemoteException;
    
    
    //Comprobacion Asociaciones
    
    public boolean existeCursoConMateria(MateriaVO mVO)throws RemoteException;
    public boolean existeProfesorConMateria(MateriaVO mVO)throws RemoteException;
    public boolean existeCursoConProfesor(ProfesorVO pVO)throws RemoteException;
    public boolean existeCursoConAlumno(AlumnoVO aVO)throws RemoteException;
   
    
    
    
}
